/* 
请求封装解耦api'的js文件
封装get和post请求
设置拦截器
设置默认地址
*/
//引入 插件
import {Message} from 'element-ui';
import local from "./sess";

import axios from "axios";

import qs from "qs"
//设置默认的服务器地址
axios.defaults.baseURL = "http://127.0.0.1:5000";


//设置请求头

axios.interceptors.request.use((config) => {

    let token = local.get("uid")

    if (token) {
        config.headers.Authorization = token
    }
    return config;

});


//设置响应数据

axios.interceptors.response.use((config) => {
    //结构出msg和code 
    let {msg , code} = config.data;

   if(code === 0){
    Message({message:msg,type:"success"})
    
    //不做任何操作
   }else if(code !== "00" || code!=="11"){
   }
   else{Message.error(msg)
}
    return config;
    //回调函数
    },(res)=>{
   // 如果在响应结果拿到后 code为401 说明是无效的token 退出登录
   if( res.response.data.code == 401 ){
    // 退出后 
    router.push("/login")
    // 清空错误的token
    local.clear();
}


});


export default {



    //整体思想 用再次封装来解决then的问题
    //get方法

    get(url, params) {

        return new Promise((resolve, reject) => {

            axios.get(url, { params }).then((res) => {
                resolve(res.data);
            }).catch((error) => {
                reject(error)
            })

        })
    },

    post(url, params) {

        return new Promise((resolve, reject) => {

            //由于兼容post老版本  所以要加个ps
            axios.post(url, qs.stringify(params)).then((res) => {
                resolve(res.data);

            }).catch((error) => {

                reject(error)

            })
        })
    }

}


